﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebComponents;
using WebComponents.Data;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using GBIT.Web;
using WebComponents.Security;

public partial class BannerManager : UserControlBase {

  protected void Page_Load(object sender, EventArgs e) {
    this.AddModule = "QuangCao/Banner.ascx";
    this.Title = "Quảng cáo";
    if (!Page.IsPostBack) {
      grvBanner.DataSource = GetList();
      grvBanner.DataBind();
    }    
    this.AddEnabled = true;
  }  
  protected override void OnDeleteRecord() {
    foreach (GridViewRow row in grvBanner.Rows) {
      if (((HtmlInputCheckBox)row.FindControl("chkSelect")).Checked) {
        AdvertiseController.Delete(ConvertType.ToInt(((HtmlInputCheckBox)row.FindControl("chkSelect")).Attributes["title"]));
      }
    }
    grvBanner.DataSource = GetList();
    grvBanner.DataBind();
  }
  protected void grvBanner_RowDataBound(object sender, GridViewRowEventArgs e) {
    //AdvertiseInfo ad = e.Row.DataItem as AdvertiseInfo;
    //if (ad != null) {
    //  Label l = e.Row.FindControl("lblMedia") as Label;
    //  l.Text = Common.LoadBannerMedia(Page, ad.MediaUrl, ad.Width, 100, ad.Height, 70, "?mod=" + WebComponents.ConvertType.Encode(this.AddModule) + "&id=" + ad.AdsId, "", "");
    //}
  }
  protected void grvBanner_PageIndexChanging(object sender, GridViewPageEventArgs e) {
    grvBanner.DataSource = GetList();
    grvBanner.PageIndex = e.NewPageIndex;
    grvBanner.DataBind();
  }
  protected override void OnTaskSubmit(TaskArgs e) {
    AdvertiseInfo adv = null;
    switch (e.Task) { 
      case Task.ChangeStatus:
        adv = AdvertiseController.GetByAdsId(ToInt(e.ID));
        if (adv != null) {
          if (adv.Status == 1)
            adv.Status = 0;
          else
            adv.Status = 1;
          AdvertiseController.Update(adv);
          Security.ShowClientMessage(this.Page, "Thay đổi trạng thái quảng cáo thành công");
        }
        break;
      case Task.MoveDown:
        int kq = AdvertiseController.MoveDown(ToInt(e.ID));
        if (kq > 0)
          Security.ShowClientMessage(this.Page, "Di chuyển quảng cáo xuống dưới thành công");
        else
          Security.ShowClientMessageError(this.Page, "Di chuyển quảng cáo xuống dưới không thành công.\r\nVì quảng cáo di chuyển là quảng cáo cuối.");
        break;
      case Task.MoveUp:
        kq = AdvertiseController.MoveUp(ToInt(e.ID));
        if (kq > 0)
          Security.ShowClientMessage(this.Page, "Di chuyển quảng cáo lên trên thành công");
        else
          Security.ShowClientMessageError(this.Page, "Di chuyển quảng cáo lên trên không thành công.\r\nVì quảng cáo di chuyển là quảng cáo đầu.");
        break;
    }
    grvBanner.DataSource = GetList();
    grvBanner.DataBind();
  }
  private List<AdvertiseInfo> GetList() {
    List<AdvertiseInfo> list;
    if (cmbViTri.SelectedIndex > 0)
      list = AdvertiseController.List().Where(a => a.Position == cmbViTri.SelectedValue).ToList();
    else
      list = AdvertiseController.List();
    if (list.Count == 0) {
      this.EditEnabled = false;
      this.DeleteEnabled = false;
    } else {
      this.EditEnabled = true;
      this.DeleteEnabled = true;
    }
    return list;
  }
  protected void cmbViTri_SelectedIndexChanged(object sender, EventArgs e) {

    grvBanner.DataSource = GetList();
    grvBanner.DataBind();
  }
}
